package com.cmy.web

import android.content.Context
import androidx.startup.Initializer
import com.tencent.smtt.export.external.TbsCoreSettings
import com.tencent.smtt.sdk.QbSdk
import com.tencent.smtt.sdk.QbSdk.PreInitCallback


/**
 * @name:
 *  WebInitializer
 * @package:
 *  com.cmy.web.activity
 * @date:
 *  2023/4/2114:17
 * @author
 *    cmy
 * @description
 *  webView的相关初始化
 */
class WebInitializer : Initializer<Unit> {
    override fun create(context: Context) {
        initX5(context)
    }

    override fun dependencies(): List<Class<out Initializer<*>>> {
        return emptyList()
    }


    /**
     * X5内核初始化
     */
    private fun initX5(context: Context){
        //初始化内核加载问题
        QbSdk.initX5Environment(context, object : PreInitCallback {
            override fun onCoreInitFinished() {
                // 内核初始化完成，可能为系统内核，也可能为系统内核
            }

            /**
             * 预初始化结束
             * 由于X5内核体积较大，需要依赖网络动态下发，所以当内核不存在的时候，默认会回调false，此时将会使用系统内核代替
             * @param isX5 是否使用X5内核
             */
            override fun onViewInitFinished(isX5: Boolean) {}
        })

        //默认移动网络不下载
        QbSdk.setDownloadWithoutWifi(false)


        // 在调用TBS初始化、创建WebView之前进行如下配置
        val map = HashMap<Any, Any>()
//        map[TbsCoreSettings.TBS_SETTINGS_USE_SPEEDY_CLASSLOADER] = true
//        map[TbsCoreSettings.TBS_SETTINGS_USE_DEXLOADER_SERVICE] = true
//        QbSdk.initTbsSettings(map)


    }





}